package com.vcoud.mundialbrasil2014;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;

import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.conn.params.ConnManagerParams;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.params.HttpConnectionParams;
import org.apache.http.params.HttpParams;

import android.util.Log;

/**
 * Creado por keyvin el dia 11/03/14. Corporacion Vcoud
 */

public class ClienteHttp {
	// Tiempo de espera del servidor
	private static final int HTTP_TIMEOUT = 60 * 1000;

	private static HttpClient mClienteHttp;

	// Para obtener el cliente Http
	private static HttpClient getClienteHttp() {
		if (mClienteHttp == null) {
			mClienteHttp = new DefaultHttpClient();
			final HttpParams params = mClienteHttp.getParams();
			HttpConnectionParams.setConnectionTimeout(params, HTTP_TIMEOUT);
			HttpConnectionParams.setSoTimeout(params, HTTP_TIMEOUT);
			ConnManagerParams.setTimeout(params, HTTP_TIMEOUT);
		}
		return mClienteHttp;
	}

	// Realiza la conexion a traves de una url en string y un array con los
	// parametros post necesarios
	public static String ejecutarHttpPost(String url,
			ArrayList<NameValuePair> parametrosPost) throws Exception {
		BufferedReader en = null;
		try {
			HttpClient cliente = getClienteHttp();
			HttpPost solicitud = new HttpPost(url);
			UrlEncodedFormEntity formEntity = new UrlEncodedFormEntity(
					parametrosPost);
			solicitud.setEntity(formEntity);
			HttpResponse respuesta = cliente.execute(solicitud);
			en = new BufferedReader(new InputStreamReader(respuesta.getEntity()
					.getContent()));
			StringBuilder sb = new StringBuilder("");
			String line;
			String NL = System.getProperty("line.separator");
			while ((line = en.readLine()) != null) {
				sb.append(line).append(NL);
			}
			en.close();
			return sb.toString();
		} finally {

			if (en != null) {
				try {
					en.close();
				} catch (IOException e) {
					Log.e("webservice",
							"Error convirtiendo resultado " + e.toString());
					e.printStackTrace();
				}
			}
		}
	}
}
